// 업로드 컴포넌트 설정값
var m_maxFileCnt = 10;
var m_maxFileSize = 10 * 1024 * 1024;	// 10MByte
var m_maxFileNmLength = 100;

var m_totalFileCnt = 0;
var m_totalFileSize = 0;
var m_arrObjFile = new Array();	// 업로드된 임시파일 리스트



// 서버에 전송할 파일 정보를 만든다.
function fnMakeAttachList() {
	var strInfo = "";
	for (var i=0; i<m_arrObjFile.length; i++) {
		var strTemp = "";
		if (i==0) {
			strTemp = strTemp + m_arrObjFile[i].fileName + "<@COL@>" + m_arrObjFile[i].tempFileName + "<@COL@>" + m_arrObjFile[i].fileSize + "<@COL@>" + m_arrObjFile[i].contentType;
		} else {
			strTemp = strTemp + "<@ROW@>" + m_arrObjFile[i].fileName + "<@COL@>" + m_arrObjFile[i].tempFileName + "<@COL@>" + m_arrObjFile[i].fileSize + "<@COL@>" + m_arrObjFile[i].contentType;
		}
		
		strInfo = strInfo + strTemp;
	}
	$("#fileInfos").val(strInfo);
}


// 파일 Size 단위계산
function fnDisplayByte(intSize) {
	if (intSize < 1024) {
		return Math.round(intSize) + " Bytes";
	} else if (intSize < (1024*1024)) {
		return Math.round((intSize/1024)) + " KB";
	} else {
		return Math.round((intSize/1024/1024)) + " MB"; 
	}
}

// Array Remove 메소드 구현
function removeByIndex(arrayName, arrayIndex) {
	arrayName.splice(arrayIndex, 1);
}


// 업로드 컴포넌트 onSubmit Event
function fnCallbackSubmit(fileName, ext) {

	// 첨부파일 갯수 확인
	if (m_totalFileCnt >= m_maxFileCnt) {
		alert(msg_board_AttachFileManager_1.replace("$0", m_maxFileCnt));
		return false;
	}
	
	// 동일 이름 파일 확인
	for (var i=0; i<m_arrObjFile.length; i++) {
		if (m_arrObjFile[i].fileName == fileName) {
			alert(msg_board_AttachFileManager_2);
			return false;
		}
	}
	
	// 파일명 길이 체크
	if (fileName.length > m_maxFileNmLength) {
		alert(msg_board_AttachFileManager_3.replace("$0", m_maxFileNmLength));
		return false;
	}
	
	return true;
}



//업로드 컴포넌트 onComplete Event (Upload Fail)
function fnCallbackCompleteFail(fileName, response) {
	if (response.fileSize != 0) {
		alert(msg_board_AttachFileManager_4.replace("$0", fileName).replace("$1", fnDisplayByte(response.fileSize)));
	} else {
		alert(msg_board_AttachFileManager_5);
	}
}


// 업로드 컴포넌트 onComplete Event (Upload Success)
function fnCallbackComplete(fileName, response) {
	// 총 파일갯수
	m_totalFileCnt++;
	
	// 총 파일사이즈
	m_totalFileSize = m_totalFileSize + response.fileSize;
	
	// 오늘 날짜 구하기
	var d = new Date();
	var uploadYear = d.getFullYear();
	var uploadMonth = ((d.getMonth()+1) < 10) ? "0"+(d.getMonth()+1) : (d.getMonth()+1);
	var uploadDay = (d.getDate() < 10) ? "0"+d.getDate() : d.getDate();
	var uploadHour = d.getHours();
	var uploadMinute = d.getMinutes();
	var uploadSecond = d.getSeconds();
	
	// 파일정보 구하기
	var objTemp = {
		"fileId" : uploadYear + uploadMonth + uploadDay + uploadHour + uploadMinute + uploadSecond,
		"tempFileName" : response.tempFileName,
		"fileName" : fileName,
		"fileSize" : response.fileSize,
		"fileDate" : uploadYear + "." + uploadMonth + "." + uploadDay,
		"contentType" : response.contentType
	}; 
	m_arrObjFile.push(objTemp);
	
	// 화면 파일 정보 추가
	fnAddAttachTable(objTemp);
	
	// 화면 파일사이즈 정보 추가
	$("#id_div_fileSumSize").html(fnDisplayByte(m_totalFileSize));
}


// 첨부파일 리스트 항목 추가
function fnAddAttachTable(objTemp) {
	var strHtml = "";	
	strHtml += "<tr id='" + objTemp.fileId + "'>";
	strHtml += "<td>" + objTemp.fileName + "</td>";
	strHtml += "<td>" + fnDisplayByte(objTemp.fileSize) + "</td>";
	strHtml += "<td>" + objTemp.fileDate + "</td>";
	strHtml += "<td><a href='#' onClick=\"fnRemoveAttachTable(\'" + objTemp.fileId + "\')\"><img src='http://static.naver.com/groupware/2010/btn_pop_close.gif'></a></td>";
	strHtml += "<td>&nbsp;</td>";
	strHtml += "</tr>";
	
	$("#id_div_fileList").append(strHtml);
}


// 첨부파일 리스트 항목 삭제
function fnRemoveAttachTable(key) {
	// 총 파일갯수
	m_totalFileCnt--;
	
	// 총 파일사이즈
	for (var i=0; i<m_arrObjFile.length; i++) {
		if (m_arrObjFile[i].fileId == key) {
			m_totalFileSize = m_totalFileSize - m_arrObjFile[i].fileSize;
		}
	}
	
	// 파일정보 삭제
	for (var i=0; i<m_arrObjFile.length; i++) {
		if (m_arrObjFile[i].fileId == key) {
			removeByIndex(m_arrObjFile, i);
		}
	}

	// 화면 파일 정보 삭제
	$("#"+key).remove();
	
	// 화면 파일사이즈 정보 삭제
	$("#id_div_fileSumSize").html(fnDisplayByte(m_totalFileSize));
}




